In computing, ODBC (Open Database Connectivity) is a standard C programming language interface for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application can use ODBC to query data from a DBMS, regardless of the operating system or DBMS it uses.
ODBC accomplishes DBMS independence by using an ODBC driver as a translation layer between the application and the DBMS. The application uses ODBC functions through an ODBC driver manager with which it is linked, and the driver passes the query to the DBMS.
Contents |
ODBC defines a standard C API for accessing a relational DBMS. It was developed by the SQL Access Group in 1992 to standardize the use of a DBMS by an application. ODBC provides a universal middleware layer between the application and DBMS, allowing the application developer to use a single interface. If changes are made to the DBMS specification, only the driver needs updating. An ODBC driver can be thought of as analogous to a printer or other driver, providing a standard set of functions for the application to use, and implementing DBMS-specific functionality.
An application that can use ODBC is referred to as "ODBC-compliant". Any ODBC-compliant application can access any DBMS for which a driver is installed. Drivers exist for all major DBMSs and even for text or CSV files.
Microsoft, in partnership with Simba Technologies, created ODBC by adapting the SQL Access Group CLI.[1] The standard was based on Call Level Interface (CLI) specifications from the SQL Access Group, X/Open (after 1996 part of The Open Group), and the ISO/IEC. ODBC 1.0 was released in September 1992.[2] After ODBC 2.0, Microsoft decided to align ODBC 3.0 with the CLI specification making its way through X/Open and ISO. In 1995, SQL/CLI became part of the international SQL standard.[3]
Version history:[4]
An ODBC driver enables an ODBC-compliant application to use a data source, normally a DBMS. (Some non-DBMS drivers exist, for such data sources as CSV files. Such drivers implement a small DBMS.) ODBC drivers exist for most DBMSs, including Oracle, Microsoft SQL Server (but not for the Compact aka CE edition), Sybase ASE, and DB2.
Because different technologies have different capabilities, most ODBC drivers do not implement all functionality defined in the ODBC standard. Some drivers offer extra functionality not defined by the standard.
The Driver Manager (DM) is the software that loads a particular driver based on the connection information.[7] An application is actually linked to the DM. When the application calls the ODBC function to connect to the DBMS, the DM parses the connection string and loads the appropriate driver.
Windows and Mac OS X include a driver manager. Other operating systems can avail themselves of either of two free implementations, iODBC or unixODBC.
A bridge is special kind of driver: a driver that uses another driver-based technology.
A JDBC-ODBC bridge consists of a JDBC driver which employs an ODBC driver to connect to a target database. This driver translates JDBC method calls into ODBC function calls. Programmers usually use such a bridge when a particular database lacks a JDBC driver. Sun Microsystems included one such bridge in the JVM, but viewed it as a stop-gap measure while few JDBC drivers existed. Sun never intended its bridge for production environments, and generally recommends against its use. As of 2008[update] independent data-access vendors deliver JDBC-ODBC bridges which support current standards for both mechanisms, and which far outperform the JVM built-in.
An ODBC-JDBC bridge consists of an ODBC driver which uses the services of a JDBC driver to connect to a database. This driver translates ODBC function-calls into JDBC method-calls. Programmers usually use such a bridge when they lack an ODBC driver for a particular database but have access to a JDBC driver.
Microsoft provides an OLE DB-ODBC bridge for simplifying development in COM aware languages (i.e. Visual Basic). This bridge forms part of the MDAC system component bundle, together with other database drivers.
|